@echo off

REM 确保窗口在执行完毕后保持打开
setlocal enabledelayedexpansion

REM 设置UTF-8编码
chcp 65001 > nul

REM 检查Python是否安装
echo 正在检查Python环境...
python --version > nul 2>&1
if !errorlevel! neq 0 (
echo 错误: 未检测到Python。请先安装Python。
echo 您可以从 https://www.python.org/downloads/ 下载并安装最新版本的Python。
pause
GOTO EndScript
)

REM 检查pip是否可用
echo 正在检查pip环境...
pip --version > nul 2>&1
if !errorlevel! neq 0 (
echo 错误: 未检测到pip。请确保Python安装时勾选了"Add Python to PATH"选项。
pause
GOTO EndScript
)

REM 安装Python依赖
color 0A
echo 正在安装Python依赖（PyQt5）...
color 07
pip install PyQt5 PyQt5-sip PyQtWebEngine --user
if !errorlevel! neq 0 (
echo 错误: Python依赖安装失败。
pause
GOTO EndScript
)

REM 检查Node.js是否安装
echo 正在检查Node.js环境...
node --version > nul 2>&1
if !errorlevel! neq 0 (
echo 警告: 未检测到Node.js。这可能会影响语音合成功能。
echo 您可以从 https://nodejs.org/ 下载并安装Node.js以获得完整功能。
echo 继续启动应用程序...
) else (
REM 安装Node.js依赖 - 特别处理这部分，确保出错也不会关闭窗口
color 0A
echo 正在安装Node.js依赖（openai）...
color 07
REM 使用call命令确保即使npm install失败也会继续执行
call npm install
if !errorlevel! neq 0 (
echo 警告: Node.js依赖安装失败。
echo 继续启动应用程序...
)
)

REM 启动应用程序
color 0A
echo 依赖安装完成，正在启动应用程序...
color 07
REM 使用call命令确保即使应用程序失败也会继续执行
call python main.py

REM 检查应用程序是否成功启动
if !errorlevel! neq 0 (
echo 错误: 应用程序启动失败。
pause
)

:EndScript

echo 按任意键退出...
pause > nul

REM 确保窗口不会关闭
cmd /k "echo 脚本执行完毕。您可以关闭此窗口。"